---
title: FalkorDBVectorStore
---

<a href="https://docs.falkordb.com/" target="_blank">FalkorDB</a> is an open-source graph database with integrated support for vector similarity search

it supports:

- approximate nearest neighbor search
- Euclidean similarity & Cosine Similarity
- Hybrid search combining vector and keyword searches

This notebook shows how to use the FalkorDB vector index (`FalkorDB`)

See the <a href="https://docs.falkordb.com/" target="_blank">installation instruction</a>

## Setup

```python
# Pip install necessary package
%pip install -U  falkordb
%pip install -U  tiktoken
%pip install -U  langchain langchain_huggingface
```

```output
Requirement already satisfied: falkordb in c:\users\dell\desktop\langchain\.venv\lib\site-packages (1.0.10)Note: you may need to restart the kernel to use updated packages.

Requirement already satisfied: redis<6.0.0,>=5.0.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from falkordb) (5.2.0)
Requirement already satisfied: async-timeout>=4.0.3 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from redis<6.0.0,>=5.0.1->falkordb) (4.0.3)
Requirement already satisfied: tiktoken in c:\users\dell\desktop\langchain\.venv\lib\site-packages (0.8.0)
Requirement already satisfied: regex>=2022.1.18 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from tiktoken) (2024.11.6)
Requirement already satisfied: requests>=2.26.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from tiktoken) (2.32.3)
Requirement already satisfied: charset-normalizer<4,>=2 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests>=2.26.0->tiktoken) (3.4.0)
Requirement already satisfied: idna<4,>=2.5 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests>=2.26.0->tiktoken) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests>=2.26.0->tiktoken) (1.26.20)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests>=2.26.0->tiktoken) (2024.8.30)
Note: you may need to restart the kernel to use updated packages.
Requirement already satisfied: langchain in c:\users\dell\desktop\langchain\.venv\lib\site-packages (0.3.9)Note: you may need to restart the kernel to use updated packages.

Requirement already satisfied: langchain_huggingface in c:\users\dell\desktop\langchain\.venv\lib\site-packages (0.1.2)
Requirement already satisfied: PyYAML>=5.3 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (6.0.2)
Requirement already satisfied: SQLAlchemy<3,>=1.4 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (2.0.36)
Requirement already satisfied: aiohttp<4.0.0,>=3.8.3 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (3.11.8)
Requirement already satisfied: async-timeout<5.0.0,>=4.0.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (4.0.3)
Requirement already satisfied: langchain-core<0.4.0,>=0.3.21 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (0.3.21)
Requirement already satisfied: langchain-text-splitters<0.4.0,>=0.3.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (0.3.2)
Requirement already satisfied: langsmith<0.2.0,>=0.1.17 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (0.1.147)
Requirement already satisfied: numpy<2,>=1.22.4 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (1.26.4)
Requirement already satisfied: pydantic<3.0.0,>=2.7.4 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (2.9.2)
Requirement already satisfied: requests<3,>=2 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (2.32.3)
Requirement already satisfied: tenacity!=8.4.0,<10,>=8.1.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (9.0.0)
Requirement already satisfied: huggingface-hub>=0.23.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain_huggingface) (0.26.3)
Requirement already satisfied: sentence-transformers>=2.6.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain_huggingface) (3.3.1)
Requirement already satisfied: tokenizers>=0.19.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain_huggingface) (0.20.3)
Requirement already satisfied: transformers>=4.39.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain_huggingface) (4.46.3)
Requirement already satisfied: aiohappyeyeballs>=2.3.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (2.4.4)
Requirement already satisfied: aiosignal>=1.1.2 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.3.1)
Requirement already satisfied: attrs>=17.3.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (24.2.0)
Requirement already satisfied: frozenlist>=1.1.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.5.0)
Requirement already satisfied: multidict<7.0,>=4.5 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (6.1.0)
Requirement already satisfied: propcache>=0.2.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (0.2.0)
Requirement already satisfied: yarl<2.0,>=1.17.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.18.0)
Requirement already satisfied: filelock in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from huggingface-hub>=0.23.0->langchain_huggingface) (3.16.1)
Requirement already satisfied: fsspec>=2023.5.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from huggingface-hub>=0.23.0->langchain_huggingface) (2024.10.0)
Requirement already satisfied: packaging>=20.9 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from huggingface-hub>=0.23.0->langchain_huggingface) (24.2)
Requirement already satisfied: tqdm>=4.42.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from huggingface-hub>=0.23.0->langchain_huggingface) (4.67.1)
Requirement already satisfied: typing-extensions>=3.7.4.3 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from huggingface-hub>=0.23.0->langchain_huggingface) (4.12.2)
Requirement already satisfied: jsonpatch<2.0,>=1.33 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain-core<0.4.0,>=0.3.21->langchain) (1.33)
Requirement already satisfied: httpx<1,>=0.23.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langsmith<0.2.0,>=0.1.17->langchain) (0.27.2)
Requirement already satisfied: orjson<4.0.0,>=3.9.14 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langsmith<0.2.0,>=0.1.17->langchain) (3.10.12)
Requirement already satisfied: requests-toolbelt<2.0.0,>=1.0.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langsmith<0.2.0,>=0.1.17->langchain) (1.0.0)
Requirement already satisfied: annotated-types>=0.6.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from pydantic<3.0.0,>=2.7.4->langchain) (0.7.0)
Requirement already satisfied: pydantic-core==2.23.4 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from pydantic<3.0.0,>=2.7.4->langchain) (2.23.4)
Requirement already satisfied: charset-normalizer<4,>=2 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests<3,>=2->langchain) (3.4.0)
Requirement already satisfied: idna<4,>=2.5 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests<3,>=2->langchain) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests<3,>=2->langchain) (1.26.20)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests<3,>=2->langchain) (2024.8.30)
Requirement already satisfied: torch>=1.11.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from sentence-transformers>=2.6.0->langchain_huggingface) (2.5.1)
Requirement already satisfied: scikit-learn in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from sentence-transformers>=2.6.0->langchain_huggingface) (1.5.2)
Requirement already satisfied: scipy in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from sentence-transformers>=2.6.0->langchain_huggingface) (1.13.1)
Requirement already satisfied: Pillow in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from sentence-transformers>=2.6.0->langchain_huggingface) (11.0.0)
Requirement already satisfied: greenlet!=0.4.17 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from SQLAlchemy<3,>=1.4->langchain) (3.1.1)
Requirement already satisfied: regex!=2019.12.17 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from transformers>=4.39.0->langchain_huggingface) (2024.11.6)
Requirement already satisfied: safetensors>=0.4.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from transformers>=4.39.0->langchain_huggingface) (0.4.5)
Requirement already satisfied: anyio in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from httpx<1,>=0.23.0->langsmith<0.2.0,>=0.1.17->langchain) (4.6.2.post1)
Requirement already satisfied: httpcore==1.* in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from httpx<1,>=0.23.0->langsmith<0.2.0,>=0.1.17->langchain) (1.0.7)
Requirement already satisfied: sniffio in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from httpx<1,>=0.23.0->langsmith<0.2.0,>=0.1.17->langchain) (1.3.1)
Requirement already satisfied: h11<0.15,>=0.13 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from httpcore==1.*->httpx<1,>=0.23.0->langsmith<0.2.0,>=0.1.17->langchain) (0.14.0)
Requirement already satisfied: jsonpointer>=1.9 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from jsonpatch<2.0,>=1.33->langchain-core<0.4.0,>=0.3.21->langchain) (3.0.0)
Requirement already satisfied: networkx in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from torch>=1.11.0->sentence-transformers>=2.6.0->langchain_huggingface) (3.2.1)
Requirement already satisfied: jinja2 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from torch>=1.11.0->sentence-transformers>=2.6.0->langchain_huggingface) (3.1.4)
Requirement already satisfied: sympy==1.13.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from torch>=1.11.0->sentence-transformers>=2.6.0->langchain_huggingface) (1.13.1)
Requirement already satisfied: mpmath<1.4,>=1.1.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from sympy==1.13.1->torch>=1.11.0->sentence-transformers>=2.6.0->langchain_huggingface) (1.3.0)
Requirement already satisfied: colorama in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from tqdm>=4.42.1->huggingface-hub>=0.23.0->langchain_huggingface) (0.4.6)
Requirement already satisfied: joblib>=1.2.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from scikit-learn->sentence-transformers>=2.6.0->langchain_huggingface) (1.4.2)
Requirement already satisfied: threadpoolctl>=3.1.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from scikit-learn->sentence-transformers>=2.6.0->langchain_huggingface) (3.5.0)
Requirement already satisfied: exceptiongroup>=1.0.2 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from anyio->httpx<1,>=0.23.0->langsmith<0.2.0,>=0.1.17->langchain) (1.2.2)
Requirement already satisfied: MarkupSafe>=2.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from jinja2->torch>=1.11.0->sentence-transformers>=2.6.0->langchain_huggingface) (3.0.2)
```

### Credentials

We want to use `HuggingFace` so we have to get the HuggingFace API Key

```python
import getpass
import os

if "HUGGINGFACE_API_KEY" not in os.environ:
    os.environ["HUGGINGFACE_API_KEY"] = getpass.getpass("HuggingFace API Key:")
```

If you want to get automated tracing of your model calls you can also set your LangSmith API key by uncommenting below:

```python
# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
# os.environ["LANGSMITH_TRACING"] = "true"
```

## Initialization

```python
from langchain_community.vectorstores.falkordb_vector import FalkorDBVector
from langchain_core.documents import Document
from langchain_huggingface import HuggingFaceEmbeddings
```

You can use FalkorDBVector locally with docker. See <a href="https://docs.falkordb.com/" target="_blank">installation instruction</a>

```python
host = "localhost"
port = 6379
```

Or you can use FalkorDBVector with <a href="https://app.falkordb.cloud">FalkorDB Cloud</a>

```python
# E.g
# host = "r-6jissuruar.instance-zwb082gpf.hc-v8noonp0c.europe-west1.gcp.f2e0a955bb84.cloud"
# port = 62471
# username = "falkordb" # SET ON FALKORDB CLOUD
# password = "password" # SET ON FALKORDB CLOUD
```

```python
vector_store = FalkorDBVector(host=host, port=port, embedding=HuggingFaceEmbeddings())
```

## Manage vector store

### Add items to vector store

```python
from langchain_core.documents import Document

document_1 = Document(page_content="foo", metadata={"source": "https://example.com"})

document_2 = Document(page_content="bar", metadata={"source": "https://example.com"})

document_3 = Document(page_content="baz", metadata={"source": "https://example.com"})

documents = [document_1, document_2, document_3]

vector_store.add_documents(documents=documents, ids=["1", "2", "3"])
```

```output
['1', '2', '3']
```

### Update items in vector store

```python
updated_document = Document(
    page_content="qux", metadata={"source": "https://another-example.com"}
)

vector_store.update_documents(document_id="1", document=updated_document)
```

### Delete items from vector store

```python
vector_store.delete(ids=["3"])
```

## Query vector store

Once your vector store has been created and the relevant documents have been added you will most likely wish to query it during the running of your chain or agent.

### Query directly

Performing a simple similarity search can be done as follows:

```python
results = vector_store.similarity_search(
    query="thud", k=1, filter={"source": "https://another-example.com"}
)
for doc in results:
    print(f"* {doc.page_content} [{doc.metadata}]")
```

```output
* qux [{'text': 'qux', 'id': '1', 'source': 'https://another-example.com'}]
```

If you want to execute a similarity search and receive the corresponding scores you can run:

```python
results = vector_store.similarity_search_with_score(query="bar")
for doc, score in results:
    print(f"* [SIM={score:3f}] {doc.page_content} [{doc.metadata}]")
```

```output
* [SIM=0.000001] bar [{'text': 'bar', 'id': '2', 'source': 'https://example.com'}]
```

### Query by turning into retriever

You can also transform the vector store into a retriever for easier usage in your chains.

```python
retriever = vector_store.as_retriever(search_type="mmr", search_kwargs={"k": 1})
retriever.invoke("thud")
```

```output
[Document(metadata={'text': 'qux', 'id': '1', 'source': 'https://another-example.com'}, page_content='qux')]
```

## Usage for retrieval-augmented generation

For guides on how to use this vector store for retrieval-augmented generation (RAG), see the following sections:

- <a href="https://python.langchain.com/v0.2/docs/tutorials/#working-with-external-knowledge" target="_blank">Tutorials: working with external knowledge</a>
- <a href="https://python.langchain.com/v0.2/docs/how_to/#qa-with-rag" target="_blank">How-to: Question and answer with RAG</a>
- <a href="Retrieval conceptual docs" target="_blank">Retrieval conceptual docs</a>

## API reference

For detailed documentation of all `FalkorDBVector` features and configurations head to the API reference: [python.langchain.com/api_reference/community/vectorstores/langchain_community.vectorstores.falkordb_vector.FalkorDBVector.html](https://python.langchain.com/api_reference/community/vectorstores/langchain_community.vectorstores.falkordb_vector.FalkorDBVector.html)
